package com.ruoyi.common.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.enums.OperatorType;

/**
 * 自定义操作日志记录注解
 * 在需要日志记录contrller操作情况的接口加上@Log，创建这样的自定义注解，
 * 然后编写ruoyi-framework里aspectj中的LogAspect完成AOP方法增强
 * @author ruoyi
 *
 */
@Target({ ElementType.PARAMETER, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Log
{
    // 模块
    public String title() default "";
    // 功能
    public BusinessType businessType() default BusinessType.OTHER;
    // 操作人类别
    public OperatorType operatorType() default OperatorType.MANAGE;
    // 是否保存请求的参数
    public boolean isSaveRequestData() default true;
    // 是否保存响应的参数
    public boolean isSaveResponseData() default true;
}
